1987-Club80-22, S.63-66

Das 80-Zeichen-Karten-Problem und seine Lösung

Helmut Bernhardt

Vor dem Untergang der offenen und entwicklungsfähigen Computertechnik durch Verdrängung durch den "Industrie-Standard" wurde von einer Aachener Firma für TRS-80 und GENIE eine 80-Zeichen-Karte angeboten. Wenn diese Karte auch in den meisten Fällen nur Probleme bereitete, war sie doch eine Option die durch entsprechende Verbesserung durchaus eine Erweiterung für unsere Computer hätte werden können.

Diese Karte entsprach der TRS-80-Philosophie, daß der-Bildwiederholspeicher in den Adreßraum der CPU eingeb1endet ist und die CPU die Bildschirmverwaltung selbst erledigen muß, Wie das bei unseren Computern für den 64 X 16-Bildschirm ohnehin gemacht wird und Level II ROM und vom DOS auch unterstützt wird. Die 80-Zeichen-Karte wird allerding nicht untertützt. Nur bei neueren TRS-80- und GENIE-Rechnern ist bei der dort schon eingebauten 80-Zeichen-Option ein manchmal funktionierender Treiber im DOS enthalten. Aber all die Programme für den TRS-80, die vom 80 X 24-Bildschirm nichts wissen und die Videoausgabe nicht über das DOS abwickeln, merken nichts davon, so daß bei Umschalten auf 80 Zeichen dann nur Zeichensalat entsteht.

Glücklicherweise gibt es immer Leute, die aus Begeisterung für ein bestimmtes Programm in mühvoller Arbeit dort die Unterstützung solcher Hardware-Erweiterungen einbauen. Dadurch wird ein 80 x 24-Zeichen-Bildchirm aber immer noch nicht TRS-80-kompatibel.

Es sollte noch erwähnt werden, daß im GENIE III und IIIs ausschließlich mit dem CRTC6845 der Bildschirm verwaltet wird. Durch Programmierrung des 6845 kann dieser in 64 x 16- und im 80 x 24-Format arbeiten. Im GIII ist außerdem der Zeichengenerator ein RAM-Speicher in den beliebige Zeichensätze geladen werden können, wobei dann aber immer nur ein Zeichensatz zur Zeit benutzt werden kann. Außerdem verfügt der GIIIs noch über eine flexible HRG, die mit dem Textbildschirm XOR-verknüpft angezeigt werden kann. Trotzdem bleibt es aber Aufgabe der CPU, im Textmodus die Bildschirmadresen zu berechnen und im HRG-Modus beim Zeichnen einer Linie alle Punkte der Linie zu errechnen.

Der eigentliche Sinn eines 80 x 24-Zeichen-Bildschirms ist auch nicht die Anpassung des NEWDOS/80 daran sondern die Nutzung unter CP/M. Für CP/M muß ohnehin das BIOS der Hardware angepaßt werden und da kommt es dann nicht mehr darauf an, ob ein 80 x 24-Bildschirm ähnlich unserem 64 x 16-Bildchirm bedient wird oder ob da völlig andere Verhältnise vorliegen.

Wenn also eine noch so sehr an die TRS-80-Verhältnisse angenäherte 80-Zeichen-Karte dann doch nicht kompatibel ist, dann kann es auch eine bliebig angeschlossene Terminal-Karte sein. Solche Karten bedeuten zudem noch einen gegringeren Programmieraufwand, weil das Anwenderprogramm bei einfacher Zeichenausgabe ohne absolute Cursor-Adressierung sich keine Gedanken um Bildchirmposition, Zeilen- und Seitenende und Scrolling machen muß. Diese Leistungen erbringt se1bst das dümmste Terminal selbst.

Grundsätzlich ist ein Terminal ein Interface zwischen Computer und Anwender und umfaßt daher zur Ausgabe an den Anwender die Bildschirmausgabe (und manchmal zusätzlich auch die Druckerausgabe) und die Tastatureingabe. Die Eingabe erfolgt hauptsächlich über ASCII-Tastaturen, die mit einem Strobe-Signal dem Terminal ein ASCII-Zeichen übergeben. Das wird zum Teil parallel oder auch seriell gelöst.

Das Terminal gibt das Zeichen unbesehen an den Computer weiter und dieser echot es nach Übernahme an das Terminal zurück. Erst dann wird das Zeichen vom Terminal auf den Bildschirm ausgegeben.

In einigen Fällen werden dabei Ausnahmen gemacht. So verstehen Terminals meisten ein bestimmtes Steuerzeichen als Befehl 'Local' und ein anderes (oder das gleiche ein zweites mal) als Befehl 'On line'. Damit kann man umschalten zwischen Ausgabe nur der Zeichen vom Computer und sofortige Ausgabe der Zeichen von der Tastatur. ohne diese an den Computer weiterzureichen.

Manche Terminals können auch mit einem Steuerzeichen in einen Setup-Modus versetzt werden, von wo aus gewisse Parameter des Terminals über die Tastatur geändert werden können. Dazu kann gehören; die Umschaltung des Bildschirmformates die Wahl nationaler Zeichensätze, die Änderung der Baudrate für die Kmmunikation mit dem Computer u.s.w.

Die Verbindung mit dem Computer kann verschiedene Formen annehmen. Die verbreitetste Variante ist ein über eine serielle Schnittstelle angeschlossenes Terminal. Damit ist es möglich, daß das Terminal mit Bildschirm und Tastatur ein eigenständiges Gerät ist und der Computer weiter entfernt stehen kann. Da bei den heutigen Tischgeräten dieser Gesichtspunkt nicht mehr ausschlaggebend ist, werden auch schon viele 'Video-Karten' für diverse Bussysteme als Steckkarten im Computer über den Systytembus angeschlossen. Einige Varianten vereinigen beide Gesichtspunkte und verfügen über z.B. einen ECB-Bus-Stecker, der nur der Zuführung der Versorgungsspannungen dient, und eine RS232C-Verbindung mit dem Computer. Prinipiell ist der Anschluß über den Systembus wegen des parallelen Datentransfers schneller. Bei Baudraten von 9600 oder 19200 ist aber auch der serille Anschluß schnell genug. Auf alle Fälle kann er mit der Ausgabe eines memory mapped Bildchirms, der unter CP/M für die Ausgabe jedes Zeichen ständig ein- und ausgeblendet werden muß, mithalten.

Das hat alles Vor- und Nachteile: Ein Terminal verlangt eine sehr viel leitungsfähigere Tastatur, die schon selbst die Umwandlung von ausgelesenen gedrückten Tasten in ASCII-Codes leisten muß. Bei unseren Rechnern muß das DOS bzw. der Z80 diese Umwandlung erledigen, was entsprechend umfangreiche Eingaberoutinen und auch CPU-Rechenzeit kostet. Da ein Programm aber bei Eingaben ohnehin nur auf die Tastatur wartet, ist das ohne Belang. Anderseits ist es bei einer ASCII-Tastatur auch nicht möglich, Mehrtasten-Befehle einzubauen (123, JKL DFG). Ähnliches kann aber mit programmierbaren Funktiontasten oder einer Interrupt-getriebenen Terminaleingabe auch realisiert werden. Das wird aber in den meisten Fällen aus Angst vor Interrupt-Programmierung unterlassen.

Programmierbare Funktionstasten von ASCII-Tastaturen werden meistens durch Ausgabe von Codes > 7FH beim Drücken einer 'F'-Taste realisiert. Die Eingaberoutine des Betriebssystems lügt sich dann bei einem solchen eingegebenen Zeichen einen diesem Zeichen zugeordneten String als eingegeben vor.

Als reines Textausgabegerät kann also eine Terminal-Karte in TRS-80-kompatiblen Computern insbesondere unter CP/M als leistungsfähiger Ersatz für eine von der CPU selbst verwaltete, memory mapped 80-Zeichen-Karte gute Dienste leisten. Der Anchluß einer ASCII-Tastatur ist möglich aber nicht zwingend. Gegenüber der minimal-Tastatur des TRS-80 und des GENIE ist eine ASCII-Tastatur aber ein zusätzlicher Komfort, der die übliche Fingerakrobatik bei der Eingabe von Umlauten endlich durch dafür vorgesehene Tasten an der richtigen Stelle ersetzt.

Bei Terminal-Karten existiert ein eigener Prozessor, der den Bildwiederholspeicher verwaltet und die von der CPU übergebnen Zeichen entgegennimmt. Außer den darstellbaren Zeichen (20H-7FH) versteht er die meisten Steuerzeichen (00h-1FH) und setzt diese in entsprechendes Wohlverhalten um. Meistens reichen diese Befehle aber nicht für alle Wünsche der Bildchirmverwaltung aus, so daß außerdem noch ESC-Sequenzen weitere Steuerfunktionen bereitstellen. In der Festlegung solcher ESC-Sequenzen und in deren Menge unterscheiden sich die verchiedenen Terminals voneinander. Die Bedienung eines Terminal ähnelt also mehr der eines Druckers als der des herkömmlichen TRS-80-Bi1dschirms. Und genauso wie bei den Druckern gibt es mehr oder weniger leistungsfähige Terminals.

So gibt es analog den Typenrad-Druckern auch reine Text-Terminals, die nur ASCII-Zeichen (natürlich auch deutsche Umlaute) darstellen können, und andere die wie ein Matrixdrucker auch graphikfähig sind. Eine solche graphikfähige Terminalkarte, die GRIP, hat uns Manfred Held im letzten Info schon vorgestellt und auch gezeigt, daß sowas bei uns durchaus gute Dienste leisten kann. Die neueste Version der GRIP (Vers.5.3) ist in der Lage, HRG mit 768x567 Punkten darzustellen und Text in bis zu 96x35 Zeichen auszugeben. Durch den HD6345-CTRC, der aufwärtskompatibel zum MC6845 ist, wurde dort auch ein augenschonendes Smooth-Scrolling (Hochschieben des Bildschirminhaltes nicht textzeilenweise sondern dotzei1enweise) erreicht. Gegenüber der etwas lahmen Urform GRIP1 ist die GR3P5.53 eine der schnellsten Terminal-Karten für CP/M-Computer überhaupt.

Eine ähnlich leistungsfähige Karte ist die Video 1 von Janich & Claas, die ebenfalls HRG- und Textdarstellung beherrscht.

Weniger empfehlenswert ist die TERM 1 des mc-CP/M-Computers, die zwar wegen des EF9366 Video-Controllers in der Graphik einige interessante Aspekte bietet, die aber wegen der äuerst langsamen Textdarstellung überhaupt nicht zu gebrauchen ist.

Die GDP des ND-Klein-Computers ist eine stark abgemagerte TERM 1 ohne eigenen Terminal-Prozessor. Hier muß die CPU selbst den EF9366 programmieren. Das bringt zwar Geschwindigkeitsvorteile, macht die normale Textausgabe aber recht umtändlich. Diese Karte ist auch im eigentlichen Sinn kein Terminal, ihre Bedeutung ist auch einzig in der schnellen Vetorgraphik des Ef9366 zu sehen.

Beiden Karten mit dem EF9366 ist gemeinsam, daß sie die vereinhahmten HRG-Inhalte nicht wieder hergeben (es sei denn, man rüstet die Eigenschaft in Hardware nach).

In den meisten Fä11en genügt es aber, wenn man für die Implementation von CP/M eine reine 80x24-Text-Terminal-Karte benutzt. CP/M fordert zwar keine 80x24- Zeichen-Darstellung und flexiblere Programme lassen sich auch für 64x16-Bildschirme installieren; die meisten unter CP/M laufendn Programme gehen aber von dieser Bildschirmgröße aus, so daß man beim 64x16-Zeichen-Format einen großen Teil der Informationen nur vorbeihuschen siet und nicht lesen kann. Besonders ärgerlich ist dies bei den in vielen Utilities aus dem Programm heraus aurufbaren HELP-Texten.

Eine sehr elegante Lösung besteht in der Verwendung des c't-Text-Terminals. Neben einer mit maximal 19200 Baud Übertragungsrate sehr schnellen Textausgabe überzeugt diese Karte besonders durch ihr günstiges Preis/Leistungs-Verhältnis. Die Karte läßt sich für ca. 300 DM aufbauen und bietet dabei eine Fülle von Optionen. So lassen sich Zeichen mit bis zu 8 gleichzeitig wirksamen Attributen darstellen und es können gleichzeitig verschiedene Zeichen oder Zeichengruppen auf dem Bildschirm mit verschiedenen Attributen dargestellt werden. Die Attribute umfassen; Normaldarstellung, doppelt breit, doppelt hoch, halb hell, invers, blinkend und unsichtbar. Die Attribute werden durch entsprechende ESC-Sequenen gesetzt und gelten dann für alle folgenden ausgegebenen Zeichen, bis andere Attribut-Befehle augegeben werden.

Literatur

Low-Cost: c't Text-Terminal; Tilman Reh; c't 9/86, 65
Das mc-Terminal; R. Jäger, H.J. Regge, G.Tobergte; mc 9/83, 70
Das mc-Graphik-Terminal: R.-D. Klein; mc 8/83, 68
Graphik-Interface-Prozessor GRIP 1; J.C.Lotter, c't 6/84, 52; c't 7/84, 92